//判断字符是否为空的方法
function isEmpty(obj){
    if(typeof obj == "undefined" || obj == null || obj == ""){
        return true;
    }else{
        return false;
    }
}

// 向后台发送ping请求
function ping(ip) {
	$.wajax({
        type: "POST",
        url: CONTEXT_PATH + '/host/host/ping',
        data: {ip : ip},
        success: function(result) {
            layer.alert(result.msg);
        }
    });
}

$.wajax({
    type: "POST",
    url: CONTEXT_PATH + '/game/game/queryAll',
    success: function(result) {
    	$("#gameId").select2({
    		  placeholder : "请选择游戏",
    		  data: result.data,
    		  width: '100px'
    	});
    	
//    	if (result.data != null && result.data.length > 0) {
//    		$('#gameId').val(result.data[0].id).trigger("change");
//    	}
    }
});

$(function(){
    $("#table").bootstrapTable({ // 对应table标签的id
        url: CONTEXT_PATH+"/host/host/query", // 获取表格数据的url
        cache: false, // 设置为 false 禁用 AJAX 数据缓存， 默认为true
        striped: true,  //表格显示条纹，默认为false
        pagination: true, // 在表格底部显示分页组件，默认false
        pageList: [10, 20, 50], // 设置页面可以显示的数据条数
        pageSize: 10, // 页面数据条数
        pageNumber: 1, // 首页页码
        singleSelect: true,
        toolbar: '#toolbar',
        search:true,
        striped: true,                      //隔行变色
        clickToSelect: true,                //点击选中
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //是否显示刷新按钮
        sidePagination: 'client', // 设置为客户端分页
//        responseHandler: function(res) {
//            return {
//                "total": res.page.total,//总页数
//                "rows": res.data   //数据
//            };
//        },
        /*
        queryParams: function (params) { // 请求服务器数据时发送的参数，可以在这里添加额外的查询参数，返回false则终止请求

            return {
                pageSize: params.limit, // 每页要显示的数据条数
                offset: params.offset, // 每页显示数据的开始行号
                sort: params.sort, // 要排序的字段
                sortOrder: params.order, // 排序规则
                dataId: $("#dataId").val() // 额外添加的参数
            }
        },*/
        sortName: 'hostId', // 要排序的字段
        sortOrder: 'desc', // 排序规则
        columns: [
            {
                checkbox: true, // 显示一个勾选框
                align: 'center' // 居中显示
            }, {
                field: 'hostId', // 返回json数据中的name
                title: '主机ID', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中,
                sortable: true
            },{
                field: 'game.nameCn', // 返回json数据中的name
                title: '所属游戏', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            }, {
                field: 'property', // 返回json数据中的name
                title: '出机方', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            }, {
                field: 'idc', // 返回json数据中的name
                title: '机房', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            }, {
                field: 'area', // 返回json数据中的name
                title: '地区', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            }, {
                field: 'ctccIp', // 返回json数据中的name
                title: '电信ip', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true,
                formatter: function (value, row, index) { 
                	if (!isEmpty(value)) {
                		return "<a href=javascript:ping('" + value + "')>" + value + "</a>"
                	}
                }
            }, {
                field: 'cuccIp', // 返回json数据中的name
                title: '联通ip', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true,
                formatter: function (value, row, index) { 
                	if (!isEmpty(value)) {
                		return "<a href=javascript:ping('" + value + "')>" + value + "</a>"
                	}
                }
            }, {
                field: 'cmccIp', // 返回json数据中的name
                title: '移动ip', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true,
                formatter: function (value, row, index) { 
                	if (!isEmpty(value)) {
                		return "<a href=javascript:ping('" + value + "')>" + value + "</a>"
                	}
                }
            }, {
                field: 'lanIp', // 返回json数据中的name
                title: '局域网ip', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            }, {
                field: 'sshPort', // 返回json数据中的name
                title: 'ssh端口号', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            },{
                field: 'curGameServerCount', // 返回json数据中的name
                title: '服数（当前）', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            },{
                field: 'maxGameServerCount', // 返回json数据中的name
                title: '服数（最高）', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            },{
                field: 'role', // 返回json数据中的name
                title: '角色', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true,
                formatter: function (value, row, index) { 
                	switch(value) {
	                	case 1:
	                		return '测试服';
	                	case 2:
	                		return '游戏服';
	                	case 4:
	                		return '中央服';
	                	case 5:
	                		return '消息服';
	                	case 6:
	                		return '下载服';
                		default:
                			return '其他';
                	}
                }
            },{
                field: 'state', // 返回json数据中的name
                title: '状态', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true, 
                formatter: function (value, row, index) { 
                	if (value == 1) {
                		return "上架"; 
                	} else { 
                		return "下架"; 
                	} }
            }, {
                field: 'remark', // 返回json数据中的name
                title: '备注', // 表格表头显示文字
                align: 'center', // 左右居中
                valign: 'middle', // 上下居中
                sortable: true
            }
        ],
//        onLoadSuccess: function(){  //加载成功时执行
//            //console.info("加载成功");
//        },
//        onLoadError: function(){  //加载失败时执行
//            layer.alert("数据加载失败");
//        }

    });

    $('#btn_online').click(function () {
    	$("#table").bootstrapTable('resetSearch', '上架');
    });
    
    $('#btn_offline').click(function () {
    	$("#table").bootstrapTable('resetSearch', '下架');
    });

    $('#btn_add').click(function () {
    	// 显示上架下架状态
    	$('#stateDiv').css('display','block');
    	
        $('#host_form')[0].reset();
        $('#action_type').val('add');
        $('#detailModalTitle').text('新增主机');
        $('#detailModal').modal('show');
    });

    $('#btn_edit').click(function () {
    	// 隐藏上架下架状态
    	$('#stateDiv').css('display','none');
    	
        var records = $('#table').bootstrapTable('getSelections');
        if(records.length==0){
            layer.alert('请先选择要修改的记录！');
            return;
        }
        $.wajax({
            url: CONTEXT_PATH+'/host/host/findById',
            data: {id: records[0].hostId},
            success: function (result) {
                if(result.code == RESULT_FAIL){
                    layer.alert(result.msg);
                    return;
                }
                for(var key in result.data){
                	if (key == 'gameId') {
                		$('#gameId').val(result.data[key]).trigger("change");
                	} else {
                		$('#'+key).val(result.data[key]);
                	}
                }
            }
        });
        $('#action_type').val('edit');
        $('#detailModalTitle').text('修改主机');
        $('#detailModal').modal('show');
    });
    
    // 上架主机
    $('#btn_online_host').click(function () {
    	var records = $('#table').bootstrapTable('getSelections');
        if(records.length==0){
            layer.alert('请先选择要上架的记录！');
            return;
        }
        
        if (records[0].state == 1) {
        	layer.alert('该主机已上架！');
        	return;
        }
        
        $.wajax({
            url: CONTEXT_PATH+'/host/host/online',
            data: {id: records[0].hostId},
            success: function (result) {
                layer.alert(result.msg);
                $('#table').bootstrapTable('refresh');
            }
        });
    });
    
    // 下架主机
    $('#btn_offline_host').click(function () {
    	var records = $('#table').bootstrapTable('getSelections');
        if(records.length==0){
            layer.alert('请先选择要下架的记录！');
            return;
        }
        
        if (records[0].state == 0) {
        	layer.alert('该主机已下架！');
        	return;
        }
        
        $.wajax({
            url: CONTEXT_PATH+'/host/host/offline',
            data: {id: records[0].hostId},
            success: function (result) {
                layer.alert(result.msg);
                $('#table').bootstrapTable('refresh');
            }
        });
    });
    
    $('#btn_delete').click(function () {
        var records = $('#table').bootstrapTable('getSelections');
        if(records.length==0){
            layer.alert('请先选择要删除的记录！');
            return;
        }
        layer.confirm('确认删除选中记录吗？', {
            btn: ['确定','取消'] //按钮
        }, function(){
            var id = records[0].hostId;
            $.wajax({
                url: CONTEXT_PATH+'/host/host/del',
                data: {id: id},
                success: function (result) {
                    layer.alert(result.msg);
                    $('#table').bootstrapTable('refresh');
                }
            });
        });
    });

    $('#btn_submit').click(function () {
        $("#host_form").submit();
    });

    $("#host_form").validate({
        rules: {
        	gameId: {
        		required: true
        	},
        	property: {
                required: true
            },
            idc: {
                required: true
            },
            area: {
                required: true
            },
            lanIp: {
                required: true
            },
            sshPort: {
                required: true
            },
            maxGameServerCount: {
                required: true
            },
            state: {
                required: true
            },
            role: {
            	required: true
            }
        },
        messages: {
        	gameId: "所属游戏是必填项",
        	property: "出机方是必填项",
        	idc: "机房是必填项",
        	area: "地区是必填项",
        	lanIp: "局域网ip是必填项",
    		sshPort: "ssh端口号是必填项",
        	maxGameServerCount: "最大游戏服数是必填项",
        	state: "状态是必填项",
        	role: "角色是必填项"
        },
        errorElement: "span",
        submitHandler: function(form) {
            var url='';
            var actionType = $('#action_type').val();
            if(actionType=='add'){
                url=CONTEXT_PATH+'/host/host/add';
                $('#hostId').val(-1);
            }else if(actionType=='edit'){
                url=CONTEXT_PATH+'/host/host/edit';
                
                var records = $('#table').bootstrapTable('getSelections');
                if(records.length==0){
                    layer.alert('请先选择要修改的记录！');
                    return;
                }
                
                $('#hostId').val(records[0].hostId);
            }
            $.wajax({
                type: "POST",
                url: url,
                data: $(form).serialize(),
                success: function(result) {
                    layer.alert(result.msg);
                    $('#detailModal').modal('hide');
                    $('#table').bootstrapTable('refresh');
                    $(form)[0].reset();
                }
            });
        }
    });//End

});